iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0

解釋依賴只能往內,不可以往外。

今日主題:

在 Clean Architecture 裡,每一層就像一座城。
越裡面的城越重要、越穩定,
外層的功能只能「依賴」裡層,不能反過來。

這就像「護城河」:
外層的河保護城堡,但水不能倒流進去亂沖城牆。
讓邊界清楚,才能守住安全、穩定的中心。

範例故事:

AI 王國有一座巨大的城堡。
裡面住著「智慧核心」——它負責思考與做決定。
外面一圈是「信差區」,負責把訊息傳進來;
再外一圈是「工具區」,有馬車、信鴿、魔法螢幕(像框架與 API)。

有一天,一隻信鴿想要飛進城堡改國王的命令。
士兵立刻阻止牠:「外層不能改內層!只能把訊息傳進來!」
因為一旦外層能反控制內層,整個王國就會亂掉。

這條規則就叫「依賴只能往內」。
外層可以用內層的規則,但內層不能依賴外層的工具。

在程式中的應用是什麼?

在 AI 系統中,我們常有這幾層:

  • Entities(核心):AI 的規則與邏輯;
  • Use Cases(任務):AI 要完成的工作;
  • Interface Adapters(翻譯):資料轉換;
  • Frameworks & Drivers(工具):外部世界(API、資料庫、UI)。

依賴方向永遠往內:
Frameworks → Adapters → UseCases → Entities

範例(JavaScript 模擬):

// 核心:AI 的規則(不能依賴外部)
class AICore {
  think(question) {
    return "根據規則思考:" + question;
  }
}

// 任務層:使用核心邏輯
class AIUseCase {
  constructor(core) {
    this.core = core;
  }
  run(q) {
    return this.core.think(q);
  }
}

// 外層框架:呼叫任務層
function main() {
  const core = new AICore();
  const useCase = new AIUseCase(core);
  console.log(useCase.run("今天會不會下雨?"));
}

main();

如果反過來──核心去呼叫外部框架,就像國王自己跑去郵局寄信,
整個系統就會變得混亂又難維護。

小結與一個思考問題:

「依賴只能往內」就像 AI 王國的護城河,
外層要尊重邊界,不能直接干擾核心。
這樣 AI 才能安全、穩定、可維護。

思考問題:如果你是 AI 王國的建築師,

你會怎麼畫出護城河,確保外層不能影響內層?


上一篇
Day 25 : Frameworks & Drivers:AI 工具箱
系列文
Clean Architecture 無瑕的程式碼:國中生阿吉的暑期閱讀筆記26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言